Exemplary embodiments relate to a semiconductor memory device and a method of operating the same and, more particularly, to a semiconductor memory device for randomizing and programming external input data and a method of operating the same.
A semiconductor memory device includes an I/O circuit for receiving program data from a host and externally outputting data stored in the semiconductor memory device, a column selection circuit for sequentially inputting the program data of the I/O circuit to a page buffer, and the page buffer for controlling the potential of a bit line when a program operation is performed in response to the program data received from the column selection circuit.
In a program operation of a semiconductor memory device, when certain bits of data are stored in memory cells of a memory cell array, interference may occur between the data, thereby degrading reliability of the program operation. More particularly, if the same data is intensively stored in some memory cells of the memory cell array, a potential difference may be internally generated in the memory cell array including the plurality of memory cells and thus the data stored in the memory cells may be changed. In order to prevent this phenomenon, the program data received from the host is randomized and programmed into the memory cell array.
To this end, after an operation of randomizing program data inputted to the I/O circuit is performed, the randomized data is sent to the column selection circuit, and the column selection circuit inputs received data to the page buffer. If a program operation using the randomized data is performed, the program data received from the host is not sequentially programmed into the memory cell array, but randomly programmed into the memory cell array. A read operation may read the data randomized and programmed in the program operation in reverse order.
When program data has not been inputted into a column of the memory cell array, an initial value of the page buffer should be outputted in the read operation. However, incorrect data may be outputted as read data due to the randomization operation. In order to prevent this phenomenon, the program data from the host should be inputted to all columns of the memory cell array.